package com.pizzaonline.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jdom.Element;

import com.pizzaonline.utils.XMLControler;

/**
 * Servlet implementation class for Servlet: SuppressionPizza
 *
 */
 public class SuppressionPizza extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
   
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public SuppressionPizza() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//Mode UTF-8
		request.setCharacterEncoding("UTF-8");
		
		//Récupération des paramètres
		String pizza = request.getParameter("pizza");
		if(pizza == null) return;
		PrintWriter out = response.getWriter();
		deletePizza(out,pizza);
	}   	  	  
	
	/**
	 * @param out
	 * @param pizza
	 */
	private void deletePizza(PrintWriter out,String pizza){
		Element temp;
		try{
			XMLControler.readXMLFile("carte.xml");
			System.out.println("Lecture du fichier XML");
			
			// On teste si la pizza n'est pas déjà présente dans un menu
			// Si oui, on interdit la suppression
			if(XMLControler.isMenuContainsPizza(pizza)){
				out.println("<b><font color=\"red\">Pizza déjà présente dans un menu - suppression impossible</font></b><br/>");
				out.println("<a href=\"suppression.jsp?mode=pizza\">Retour</a><br/>");
				return;
			}
			else{
				Element pizzas = XMLControler.racine.getChild("Pizzas");
				List listePizzas = pizzas.getChildren();
				Iterator iter = listePizzas.iterator();
				while(iter.hasNext()){
					temp = (Element)iter.next();
					if(temp.getAttributeValue("nomPizza").equals(pizza)){
						pizzas.removeContent(temp);
						break;
					}
				}
				XMLControler.saveXMLFile("carte.xml");
				out.println("<b><font color=\"green\">Suppression réussie dans le fichier XML</font></b><br/>");
				out.println("<a href=\"suppression.jsp?mode=pizza\">Supprimer une autre pizza</a><br/>");
			}	
		}
		catch(Exception e){
			System.out.println("Erreur de lecture du fichier XML");
			out.println("<b><font color=\"red\">Erreur de suppression dans le fichier XML</font></b><br/>");
			out.println("<a href=\"suppression.jsp?mode=pizza\">Recommencer</a><br/>");	
			e.printStackTrace();
		}
	}
	
	/* (non-Javadoc)
	 * @see javax.servlet.GenericServlet#init()
	 */
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
	}   
}